A distributed system, such as a business system, may include a variety of hardware components and software applications installed throughout many layers of the system. For example, the combination of specific hardware components and software applications may allow users to perform business operations (e.g., inventory, sales, personnel, contacts, billing, etc.) within the system.
The installation of new system software requires consideration of the system's hardware components and pre-existing software applications for at least two reasons: to ensure the functionality of the new software to be installed and to ensure that pre-installation functionality of the system is maintained. Thus, system software may need to be based on attributes of a target system, for example, at the design phase.
Information about the target system may be needed to ensure successful installation of the system software. Such information may be characterized as hardware components and pre-existing software applications (i.e., system attributes) that must exist on the target system for the system software to function. Such system attributes essentially describe conditions which must be fulfilled by the target system prior to system software installation. The software to be installed and the additional information required for installation are published together in a single “software package.”
Configuring the installation of software for a system is a complex process. The system software installation process must determine if the necessary attributes exist on the system prior to installing the software on the system. Determining that the necessary attributes exist prevents installing system software that will not function properly on a system lacking the necessary attributes. Ensuring the necessary attributes exist on a target system may also confirm that the target system is authorized to have the system software installed.
System attributes may be subject to replacements or upgrades that ultimately have no effect on the functionality of the system software within a software package; however, these “new” system attributes are still distinct from the system attributes listed in the software package. Thus, it is desirable to install the system software despite the fact that the system does not contain all the attributes listed in the software package because the software will still function properly. There may also be an error in the system attributes contained in the software package that is not discovered until after the software package is published. Thus, the software package may not be installable on proper systems (or installable on improper systems). However, once a package is published, it cannot be changed. Thus, a new software package would have to be created with new attributes.
Descriptions of certain details and implementations follow, including a description of the figures, which may depict some or all of the embodiments described below, as well as discussing other potential embodiments or implementations of the inventive concepts presented herein. An overview of embodiments of the invention is provided below, followed by a more detailed description with reference to the drawings.